package com.nuoniu.sibanyun.entity.erp;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nuoniu.sibanyun.common.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 *  项目
 * </p>
 *
 * @author baiqiang
 * @since 2020-10-12
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("prj_project")
@ApiModel(value="ErpProject对象", description="项目")
public class ErpProject extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "公司id")
    @TableField("company_id")
    private Integer companyId;

    @ApiModelProperty(value = "账套id")
    @TableField("account_id")
    private Integer accountId;

    @ApiModelProperty(value = "项目编码")
    @TableField("code")
    private String code;

    @ApiModelProperty(value = "项目名称")
    @TableField("name")
    private String name;

    @ApiModelProperty(value = "状态0:未开始1:进行中2:已完成3:已归档")
    @TableField("status")
    private Integer status;

    @ApiModelProperty(value = "项目分类")
    @TableField("type")
    private String type;

    @ApiModelProperty(value = "负责人")
    @TableField("liable_person_ids")
    private String liablePersonIds;

    @ApiModelProperty(value = "负责人")
    @TableField("liable_person_names")
    private String liablePersonNames;

    @ApiModelProperty(value = "计划开始日期")
    @TableField("plan_begin_date")
    private LocalDate planBeginDate;

    @ApiModelProperty(value = "计划完成日期")
    @TableField("plan_end_date")
    private LocalDate planEndDate;

    @ApiModelProperty(value = "工作项完成度")
    @TableField("work_completion")
    private Double workCompletion;

    @ApiModelProperty(value = "工作项数量")
    @TableField("work_number")
    private Integer workNumber;

    @ApiModelProperty(value = "成员数量")
    @TableField("user_number")
    private Integer userNumber;

    @ApiModelProperty(value = "未开始工作数量")
    @TableField("not_work_number")
    private Integer notWorkNumber;

    @ApiModelProperty(value = "进行中工作数量")
    @TableField("start_work_number")
    private Integer startWorkNumber;

    @ApiModelProperty(value = "完成工作数量")
    @TableField("end_work_number")
    private Integer endWorkNumber;

    @ApiModelProperty(value = "审核人")
    @TableField("reviewer_user_id")
    private Integer reviewerUserId;

    @ApiModelProperty(value = "审核人姓名")
    @TableField("reviewer_user_name")
    private String reviewerUserName;

    @ApiModelProperty(value = "审核日期")
    @TableField("reviewer_date")
    private LocalDate reviewerDate;

    @ApiModelProperty(value = "创建日期")
    @TableField("create_date")
    private LocalDateTime createDate;

    @ApiModelProperty(value = "创建人")
    @TableField("create_user_id")
    private Integer createUserId;

    @ApiModelProperty(value = "创建人")
    @TableField("create_user_name")
    private String createUserName;

    @ApiModelProperty(value = "修改日期")
    @TableField("update_date")
    private LocalDateTime updateDate;

    @ApiModelProperty(value = "修改人")
    @TableField("update_user_id")
    private Integer updateUserId;

    @ApiModelProperty(value = "修改人")
    @TableField("update_user_name")
    private String updateUserName;

    @ApiModelProperty(value = "自定义字段")
    @TableField("define_fields")
    private String defineFields;

    @ApiModelProperty(value = "搜索关键字")
    @TableField(exist = false)
    private String searchKey;
}
